Field
The present embodiments relate to techniques for executing web applications. More specifically, the present embodiments relate to a method and system for providing filesystem access to web applications and native code modules.
Related Art
Computer systems may include a number of native applications that perform a variety of tasks for users. Such native applications may include word processors, email clients, media players, image or signal processing modules, and/or web browsers. To run efficiently, native applications are often written in a combination of general purpose programming languages such as C or C++ and low-level languages such as assembly language. Furthermore, native applications may have access to system resources such as graphics hardware, sound cards, filesystems, and/or network resources. Consequently, native applications may provide computationally intensive and/or resource-specific features to users of computer systems on which the native applications are installed. However, the low-level nature of native applications may restrict the applications to specific platforms, incur a lengthy installation process, and/or pose a security risk.
On the other hand, web applications, which have become more prevalent in recent years, are typically written in scripting languages that are more secure and require no installation. However, web applications may lack the performance capabilities of native applications. In particular, a web application may run one or two orders of magnitude more slowly than a native application. Furthermore, web applications are often unable to access low-level system resources that are available to native applications. As a result, web applications may be unable to implement certain features that are available in native applications.
Hence, what is needed is a technique for enabling native performance and functionality in web applications without compromising the security of the web applications.